1. Field of the Invention
The embodiments of the invention relate to event management. Specifically, embodiments of the invention relate to a mechanism to manage time event handling.
2. Background
A cluster system is utilized to provide a set of services and resources to a set of client computers. The cluster system includes a collection of server nodes and other components that are arranged to cooperatively perform computer-implemented tasks, such as providing client computers with access to the set of services and resources. A cluster system may be used in an enterprise software environment to handle a number of tasks in parallel. A cluster system is scalable and has the flexibility to enable additional cluster elements to be incorporated within or added to the existing cluster elements.
The cluster system is a client-server system that employs a multi-tiered architecture. In the multi-tiered system, presentation logic, business logic and a set of services and resources are logically separated from the user interface of the application. A client may execute a user interface. Other layers are separated from the client and operate on one or more dedicated servers on a network.
A multi-tiered architecture may be implemented using a variety of different application technologies at each of the layers of the multi-tier architecture, including those based on the Java 2 Enterprise Edition Specification created by Sun Microsystems, Santa Clara, Calif. (“J2EE”), the Microsoft .NET Framework created by Microsoft Corporation of Redmond, Wash. (“.Net”) and/or the Advanced Business Application Programming (“ABAP”) standard developed by SAP AG. For example, in a J2EE environment, the business layer, which handles the core business logic of the application, is comprised of Enterprise Java Bean (“EJB”) components with support for EJB containers. Within a J2EE environment, the presentation layer is responsible for generating servlets and Java Server Pages (“JSP”) interpretable by different types of browsers at the user interface layer.
Applications and services deployed on an application server in the cluster system require a set of timeout services. These timeout services are utilized to set the timing of designated operations needed by a service or application. However, the timeout services in cluster systems function incorrectly if a machine hibernates or a system time is changed. In addition, timeout services are inefficiently managed, improperly synchronized and unable to wait for a timeout event handler to finish before rescheduling the event. The hibernation and system time inaccuracy causes timeout events to trigger when hibernation ends or the system time change is made ignoring the intended delay interval requested for the timeout event. Every time a timeout event is triggered any subsequent reoccurrence of the time out event is calculated based on the time stored before the hibernation or time change. Additionally, timeout events are typically stored in a linked list. This results in slow operation for a large number of timeout events and does not scale well.